/******************************

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
//for setw, precision()
#include <iomanip>
using namespace std;

class Ngay
{
	int D, M, Y;

public:
	Ngay(){};
	Ngay operator +(Ngay d1){
		Ngay d2;
		int sD = D+d1.D;
		int sM = M+d1.M;
		int sY = Y+d1.Y;
		d2.D = sD % 365;
		return d2;
	}
	Ngay(int d, int m, int y){
		D = d;
		M = m;
		Y= y;
	};
	int isNhuan(int Y){
		if((Y%4 == 0) && (Y%100 != 0) || (Y %400==0) )
			return 1;
		return 0;
	}
	int soNgayNam(int y){
		return (isNhuan(y))? 366 : 365;
	}
	int stt(){
		int kq = 0;
		for (int i = 1; i < Y; i++)
		{
			kq += soNgayNam(i);
		}
		kq +=sttTrongNam();
		return kq;
	}
	int ngayCuaThang(){
		if(M == 1 || M==3 || M==5||M==7||M==8||M==10||M==12)
			return 31;
		if(M==4 ||M==6||M==8||M==9||M==10)
			return 30;

		if(M==2)
			return(isNhuan(Y))?29:28;
	}
	int sttTrongNam(){
		int kq = 0;
		//ngay cua thang
		int a[] = {31,28,31,30,31,30,31,31,30,31,30,31};
		if(isNhuan(Y))
		{
			a[1] - 29;
		}
		for (int i = 0; i < M -1; i++)
		{
			kq += a[i];
		}
		kq+=D;
		return kq;
	}

	void tang1(){
		if (++D > ngayCuaThang())
		{
			D =1;
			if (++M > 12)
			{
				M = 1;
				Y++;
			}
		}
	}
	void operator++(){
		if (++D > ngayCuaThang())
		{
			D = 1;
			if (++M >12)
			{
				M =1;
				Y++;
			}
		}
	}
	Ngay operator++(int){
		Ngay old = *this;
		if (++D > ngayCuaThang())
		{
			D = 1;
			if (++M >12)
			{
				M =1;
				Y++;
			}
		}
		return old;
	}
	void giam1(){
		if(--D <=0){
			M--;
			if(M<=0){
				Y--;
			}
			D = ngayCuaThang();
		}
	}
	void in(){
		cout<<"\n"<<D<<" "<<M<<" "<<Y;
	}
	Ngay numToDate(int n){
		int y=0, m=0, d=0;
		
		for (int i = 0; i < n/365; i++)
		{
			n-=soNgayNam(i);
			if(n >=0) y++;
			else 
			{
				n+=soNgayNam(i);
				break;
			}
		}
		for (int i = 0; i < n/28; i++)
		{

		}
	}
	int operator -(Ngay n1){
		return stt() - n1.stt();
	}
};
void main(){
	Ngay d1(12,12,2013);
	Ngay d2(1,3,2014);
	++d1;
	d1++;
	//cout << n;
	//d2.tang1();
	d2.giam1();
	d2.in();
	getch();
}

/**********************************/